package com.hexinfo.dmpro.common.utils;

import cn.hutool.core.date.DateUtil;
import cn.hutool.core.io.file.FileAppender;
import org.springframework.stereotype.Component;

@Component
public class LogFileUtil {

    /**
     * 向文件追加日志
     * 加锁，防止并发问题
     * @param heatlog 文件对象
     * @param logStr  追加日志字符串
     * @param state   是否追加日志（true 追加到缓存、false 缓存信息刷入文件）
     */
    public static synchronized void appendLog(FileAppender heatlog, String logStr, boolean state){
        if (state){
            heatlog.append(logTime(logStr));
        }else {
            heatlog.append(logTime(logStr));
            heatlog.flush();
        }
    }

    /**
     * 日志开头加日期时间
     * @param logStr 日志字符串
     */
    private static String logTime(String logStr) {
        return "["+ DateUtil.format(DateUtil.date(), "yyyy-MM-dd HH:mm:ss")+"]" +logStr;
    }
}
